home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume90 / aplictns / listplot / part01 next >
Encoding:
Internet Message Format  |  1990-08-23  |  53.4 KB

  1. Path: abcfd20.larc.nasa.gov!amiga-request
  2. From: amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
  3. Subject: v90i242: ListPlot - 2d plotting program, Part01/03
  4. Reply-To: Anthony M. Richardson <amr@dukee.egr.duke.edu>
  5. Newsgroups: comp.sources.amiga
  6. Message-ID: <comp.sources.amiga:v90i242@abcfd20.larc.nasa.gov>
  7. Date: 23 Aug 90 01:03:24 GMT
  8. Approved: tadguy@uunet.UU.NET (Tad Guy)
  9. X-Mail-Submissions-To: amiga@uunet.uu.net
  10. X-Post-Discussions-To: comp.sys.amiga
  11.  
  12. Submitted-by: Anthony M. Richardson <amr@dukee.egr.duke.edu>
  13. Posting-number: Volume 90, Issue 242
  14. Archive-name: applications/listplot/part01
  15.  
  16. [ the manual page was uuencoded for posting  ...tad ]
  17.  
  18. ListPlot is a 2D plotting program built around the PLPLOT plotting library.
  19. Although working directly with the PLPLOT library routines is more
  20. flexible, ListPlot is quite powerful.  
  21.  
  22. #!/bin/sh
  23. # This is a shell archive.  Remove anything before this line, then unpack
  24. # it by saving it into a file and typing "sh file".  To overwrite existing
  25. # files, type "sh file -c".  You can also feed this as standard input via
  26. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  27. # will see the following message at the end:
  28. #        "End of archive 1 (of 3)."
  29. # Contents:  Csrc Csrc/datatypes.h Csrc/input.c Make Makefile README
  30. #   docs docs/ListPlot.1 examples examples/README examples/lineinput
  31. #   examples/lineplot examples/loginput examples/logplot
  32. #   examples/polarinput examples/polarplot plstnd.fnt.uu
  33. # Wrapped by tadguy@abcfd20 on Wed Aug 22 21:03:20 1990
  34. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  35. if test ! -d 'Csrc' ; then
  36.     echo shar: Creating directory \"'Csrc'\"
  37.     mkdir 'Csrc'
  38. fi
  39. if test -f 'Csrc/datatypes.h' -a "${1}" != "-c" ; then 
  40.   echo shar: Will not clobber existing file \"'Csrc/datatypes.h'\"
  41. else
  42. echo shar: Extracting \"'Csrc/datatypes.h'\" \(3681 characters\)
  43. sed "s/^X//" >'Csrc/datatypes.h' <<'END_OF_FILE'
  44. X/*
  45. X * datatypes.h
  46. X */
  47. X
  48. Xtypedef    char    generic;
  49. Xtypedef    int    bool;
  50. X#define FALSE    (bool)0
  51. X#define    TRUE    (!FALSE)
  52. Xtypedef    float    FLOAT;
  53. X
  54. X#if    defined(ibmRT)
  55. X#    define    MAX_FLOAT    1.701e38
  56. X#endif
  57. X#if    defined(vax) || defined(vax3200) || defined(dgmv)
  58. X#    define    MAX_FLOAT    1.701e38
  59. X#endif
  60. X
  61. Xstruct list_atom {
  62. X    generic *la_p;
  63. X    struct list_atom    *la_next;
  64. X};
  65. Xtypedef    struct list_atom LATOM;
  66. Xtypedef    struct list {
  67. X    int    list_n;
  68. X    LATOM    *list_head;
  69. X    LATOM    *list_tail;
  70. X    } LIST;
  71. X
  72. Xtypedef enum data_type {
  73. X    integer,
  74. X    dbl,
  75. X    flt,
  76. X    byte,
  77. X    string,
  78. X    interval,
  79. X    boolean,
  80. X    set,
  81. X    rect
  82. X    } DATATYPE;
  83. X#define    isInteger(V) (V.val_type == integer? TRUE : FALSE)
  84. X#define    isDbl(V) (V.val_type == dbl? TRUE : FALSE)
  85. X#define    isFlt(V) (V.val_type == flt? TRUE : FALSE)
  86. X#define    isByte(V) (V.val_type == byte? TRUE : FALSE)
  87. X#define    isString(V) (V.val_type == string? TRUE : FALSE)
  88. X#define    isInterval(V) (V.val_type == interval? TRUE : FALSE)
  89. X#define    isBoolean(V) (V.val_type == boolean? TRUE : FALSE)
  90. X#define    isSet(V) (V.val_type == set? TRUE : FALSE)
  91. X#define    isRect(V) (V.val_type == rect? TRUE : FALSE)
  92. X
  93. X#define    VtoInteger(V) (V).val_u.udt_int
  94. X#define    VtoDbl(V) (V).val_u.udt_dbl
  95. X#define    VtoFlt(V) (V).val_u.udt_flt
  96. X#define    VtoByte(V) (V).val_u.udt_byte
  97. X#define    VtoString(V) (V).val_u.udt_string
  98. X#define    VtoInterval(V) (V).val_u.udt_interval
  99. X#define    VtoBoolean(V) (V).val_u.udt_bool
  100. X#define    VtoSet(V) (V).val_u.udt_set
  101. X#define    VtoRect(V) (V).val_u.udt_rect
  102. X
  103. X
  104. X
  105. Xtypedef    struct interval {
  106. X    double    int_lo, int_hi;
  107. X    } INTERVAL;
  108. X
  109. Xtypedef    LIST    SET;
  110. X
  111. Xtypedef    struct rect {
  112. X        FLOAT    r_diag[4];        /* xmin,ymin, xmax,ymax */
  113. X    } RECT;
  114. X#define    XMin    r_diag[0]
  115. X#define    YMin    r_diag[1]
  116. X#define    XMax    r_diag[2]
  117. X#define    YMax    r_diag[3]
  118. X
  119. Xtypedef union data_types {
  120. X    char        udt_byte;
  121. X    int        udt_int;
  122. X    bool        udt_bool;
  123. X    double        udt_dbl;
  124. X    float        udt_flt;
  125. X    char        *udt_string;
  126. X    INTERVAL    udt_interval;
  127. X    SET        udt_set;         /* {a,b,c,...}    */
  128. X    RECT        udt_rect;
  129. X    } UTYPE;
  130. X
  131. Xtypedef    struct    value    {
  132. X    DATATYPE    val_type;
  133. X    UTYPE        val_u;
  134. X    } VALUE;
  135. X
  136. X#define    Vstrcmp(V, S)    (V.val_type==string? strcmp(V.val_u.udt_string,S)==0? TRUE : FALSE : FALSE)
  137. X#define    Vstrchr(V, C)    (V.val_type==string? strchr(V.val_u.udt_string,C)==(char *)NULL? FALSE : TRUE : FALSE)
  138. X
  139. Xtypedef struct arg_def {
  140. X    VALUE    *ad_value;
  141. X    char    *ad_id;
  142. X    char    *ad_options;
  143. X    char    *ad_opttype;
  144. X    char    *ad_default;
  145. X    char    *ad_defaultType;
  146. X    char    **ad_helptext;
  147. X} ARGDEF;
  148. X
  149. X
  150. X#ifdef    ANSI_C
  151. Xvoid    ErrorExit();
  152. Xbool    Append(LIST *L, generic *Ptr);
  153. Xchar    *malloc(unsigned int);
  154. Xchar    *calloc(unsigned int, unsigned int);
  155. Xchar    *StrDup(char *Str);
  156. Xvoid    get_args(
  157. X        int argc,
  158. X        char **argv,
  159. X        ARGDEF *Symbols[],
  160. X        char *Usage[],
  161. X        char *Function[]
  162. X    );
  163. Xvoid    PrintArgDef(FILE *Fp, ARGDEF *D);
  164. Xvoid    PrintArg(FILE *Fp, ARGDEF *D);
  165. Xbool    ParseArg(ARGDEF *Symbols[], char *arg);
  166. Xbool    ParseEntry(ARGDEF *Entry, char  *arg);
  167. Xbool    ParseString(ARGDEF *Entry, char *Option, int n, char *arg);
  168. Xbool    ParseDbl(ARGDEF *Entry, char *arg);
  169. Xbool    ParseFloat(ARGDEF *Entry, char *arg);
  170. Xbool    ParseInt(ARGDEF *Entry, char *arg);
  171. Xbool    ParseBool(ARGDEF *Entry, char *arg);
  172. Xbool    ParseByte(ARGDEF *Entry, char *arg);
  173. Xbool    ParseInterval(ARGDEF *Entry, char *arg);
  174. Xbool    ParseSet(ARGDEF *Entry, char *arg, char *Type, int TypeWidth);
  175. Xbool    ParseRect(ARGDEF *Entry, char *arg);
  176. X
  177. Xvoid    PrintUsage(
  178. X        FILE    *Fp,
  179. X        char    *Usage[],
  180. X        char    *Function[],
  181. X        ARGDEF    *Symbols[]
  182. X    );
  183. Xvoid    SetDefaults(ARGDEF *Symbols[]);
  184. Xbool    SetValue(VALUE *, char *Value, char *Type);
  185. Xbool    SetString(VALUE *, char *);
  186. Xbool    SetDbl(VALUE *, char *);
  187. Xbool    SetFloat(VALUE *, char *);
  188. Xbool    SetInt(VALUE *, char *);
  189. Xbool    SetBool(VALUE *, char *);
  190. Xbool    SetByte(VALUE *, char *);
  191. Xbool    SetInterval(VALUE *, char *);
  192. Xbool    SetSet(VALUE *, char *, char *, int);
  193. Xbool    SetRect(VALUE *, char *);
  194. X
  195. X#else
  196. X#endif
  197. END_OF_FILE
  198. if test 3681 -ne `wc -c <'Csrc/datatypes.h'`; then
  199.     echo shar: \"'Csrc/datatypes.h'\" unpacked with wrong size!
  200. fi
  201. chmod +x 'Csrc/datatypes.h'
  202. # end of 'Csrc/datatypes.h'
  203. fi
  204. if test -f 'Csrc/input.c' -a "${1}" != "-c" ; then 
  205.   echo shar: Will not clobber existing file \"'Csrc/input.c'\"
  206. else
  207. echo shar: Extracting \"'Csrc/input.c'\" \(4974 characters\)
  208. sed "s/^X//" >'Csrc/input.c' <<'END_OF_FILE'
  209. X/*
  210. X * input.c
  211. X *
  212. X *    Gets data to be plotted
  213. X */
  214. X#include <stdio.h>
  215. X#include <errno.h>
  216. Xextern int errno;
  217. X#include <assert.h>
  218. X#include <ctype.h>
  219. X#include "datatypes.h"
  220. X
  221. X
  222. XFLOAT    **
  223. XGetData(Fp, m, n)
  224. XFILE    *Fp;
  225. Xint    *m, *n;
  226. X{
  227. X#ifdef    ANSI_C
  228. X    FLOAT    **GetDataMem(FILE *fp, int *M, int *N);
  229. X#else
  230. X    FLOAT    **GetDataMem();
  231. X#endif
  232. X
  233. X    return(GetDataMem(Fp, m, n));
  234. X}
  235. X
  236. X
  237. Xbool
  238. XAppend(L, Ptr)
  239. Xregister LIST    *L;
  240. Xgeneric    *Ptr;
  241. X{
  242. X    register LATOM    *A;
  243. X
  244. X    assert(L != (LIST *)NULL);
  245. X    assert(L->list_n >= 0);
  246. X
  247. X    if ((A = (LATOM *)calloc(1, sizeof(LATOM))) == (LATOM *)NULL) {
  248. X        perror("(AppendDbl) ");
  249. X        ErrorExit();
  250. X    }
  251. X    A->la_p = Ptr;
  252. X    A->la_next = (LATOM *)NULL;
  253. X
  254. X    if (L->list_n == 0) {
  255. X        /* empty list */
  256. X        assert(L->list_head == (LATOM *)NULL);
  257. X        assert(L->list_tail == (LATOM *)NULL);
  258. X        L->list_head = A;
  259. X        L->list_tail = A;
  260. X        L->list_n = 1;
  261. X    } else {
  262. X        assert(L->list_head != (LATOM *)NULL);
  263. X        assert(L->list_tail != (LATOM *)NULL);
  264. X        L->list_tail->la_next = A;
  265. X        L->list_tail = A;
  266. X        L->list_n++;
  267. X    }
  268. X    return(TRUE);
  269. X}
  270. X
  271. X
  272. XFLOAT    **
  273. XGetDataMem(Fp, m, n)
  274. XFILE    *Fp;
  275. Xint    *m, *n;
  276. X{
  277. X    int    i;
  278. X    int    C;
  279. X    int    NTuples, TupleSize;
  280. X    double    D;
  281. X    FLOAT    *F;
  282. X    FLOAT    *Tuple;
  283. X    FLOAT    **Data;
  284. X    LIST    TupleL1;
  285. X    LIST    TupleList;
  286. X    LATOM    *A;
  287. X#ifdef    ANSI_C
  288. X    bool GetNextDbl(FILE *, double *, int *);
  289. X#else
  290. X    bool GetNextDbl();
  291. X#endif
  292. X    
  293. X    TupleL1.list_n = 0;
  294. X    TupleL1.list_head = (LATOM *)NULL;
  295. X    TupleL1.list_tail = (LATOM *)NULL;
  296. X
  297. X    /* read first line to determine tuple size    */
  298. X    NTuples = 0;
  299. X    i = 0;
  300. X    do {
  301. X        if (GetNextDbl(Fp, &D, &C) == TRUE) {
  302. X            if ((F = (FLOAT *)calloc(1, sizeof(FLOAT))) == (FLOAT *)NULL) {
  303. X                perror("(GetDataMem) ");
  304. X                ErrorExit();
  305. X            }
  306. X            *F = D;
  307. X            Append(&TupleL1, (generic *)F);
  308. X            ++i;
  309. X        } else {
  310. X            break;
  311. X        }
  312. X    } while(C != '\n' && C != EOF);
  313. X
  314. X    TupleSize = i;
  315. X    if ((Tuple=(FLOAT *)calloc(TupleSize, sizeof(FLOAT))) == (FLOAT *)NULL) {
  316. X        perror("(GetDataMem) ");
  317. X        ErrorExit();
  318. X    }
  319. X    for (A=TupleL1.list_head,i=0; i<TupleSize; i++,A=A->la_next) {
  320. X        Tuple[i] = *((FLOAT *)(A->la_p));
  321. X    }
  322. X
  323. X    /* initialize list of tuples    */
  324. X    TupleList.list_n = 0;
  325. X    TupleList.list_head = (LATOM *)NULL;
  326. X    TupleList.list_tail = (LATOM *)NULL;
  327. X    Append(&TupleList, (generic *)Tuple);
  328. X
  329. X    /* get remaining tuples    */
  330. X    i = 1;
  331. X    do {
  332. X        if ((Tuple=(FLOAT *)calloc(TupleSize, sizeof(FLOAT))) == (FLOAT *)NULL) {
  333. X            perror("(GetDataMem) ");
  334. X            ErrorExit();
  335. X        }
  336. X        if (GetNextTuple(Fp, Tuple, TupleSize, &C) == TRUE) {
  337. X            Append(&TupleList, (generic *)Tuple);
  338. X            ++i;
  339. X        }
  340. X    } while(!feof(Fp));
  341. X
  342. X    if ( C != EOF ) {
  343. X        fprintf(stderr,"Error encountered while trying to read data stream...\n");
  344. X        ErrorExit();
  345. X    } else {
  346. X        NTuples = i;
  347. X    }
  348. X
  349. X
  350. X    /* convert to list of tuples to vectorized array */
  351. X    if ((Data = (FLOAT **)calloc(NTuples, sizeof(FLOAT *))) == (FLOAT **)NULL) {
  352. X        perror("(GetDataMem) ");
  353. X        ErrorExit();
  354. X    }
  355. X
  356. X    for (A=TupleList.list_head,i=0; i<NTuples; i++,A=A->la_next) {
  357. X        Data[i] = (FLOAT *)A->la_p;
  358. X    }
  359. X
  360. X    *m = NTuples;
  361. X    *n = TupleSize;
  362. X    return(Data);
  363. X}
  364. X
  365. X
  366. Xbool
  367. XGetNextTuple(Fp, Tuple, n, C)
  368. XFILE    *Fp;
  369. XFLOAT    *Tuple;
  370. Xint    n;
  371. Xregister int    *C;
  372. X{
  373. X    register int    j;
  374. X    double        D;
  375. X#ifdef    ANSI_C
  376. X    bool GetNextDbl(FILE *, double *, int *);
  377. X#else
  378. X    bool GetNextDbl();
  379. X#endif
  380. X
  381. X    for (*C=' ',j=0; j<n && isspace((char)(*C)) && *C != EOF && *C != '\n'; ) {
  382. X        if (GetNextDbl(Fp, &D, C) == TRUE) {
  383. X            Tuple[j++] = D;
  384. X        }
  385. X    }
  386. X    /* strip trailing any trailing characters */
  387. X    for (; *C != '\n' && *C != EOF; )
  388. X        *C = fgetc(Fp);
  389. X    
  390. X    if ( j>0 && j<(n-1) ) {
  391. X        /* error */
  392. X        if (*C == EOF) {
  393. X            fprintf(stderr,"Unexpected EOF while reading data!\n");
  394. X        } else if (*C == '\n') {
  395. X            fprintf(stderr, "Unexpected EOL while reading tuple...\n");
  396. X        } else {
  397. X            fprintf(stderr, "Unable to interpret data stream...\n");
  398. X        }
  399. X        ErrorExit();
  400. X    }
  401. X    return(j==n? TRUE : FALSE);
  402. X}
  403. X
  404. Xbool
  405. XGetNextDbl(Fp, D, C)
  406. XFILE    *Fp;
  407. Xdouble     *D;
  408. Xregister int    *C;
  409. X/* returns next uninterpreted character in C and
  410. X *    TRUE if found double else FALSE.
  411. X */
  412. X{
  413. X    register int    i;
  414. X    register char    *cp;
  415. X    char        s[64];
  416. X    int        flag;
  417. X
  418. X    for (flag=0,i=0,cp=s; i<sizeof(s)-1; ) {
  419. X        if ((*C = fgetc(Fp))  == EOF) {
  420. X            if (flag) {
  421. X                *cp = (char)NULL;
  422. X                if (sscanf(s, "%lf", D) == 1) {
  423. X                    return(TRUE);
  424. X                } else {
  425. X                    /* error */
  426. X                    fprintf(stderr,"Encountered nonnumeric item in data stream...\n");
  427. X                    ErrorExit();
  428. X                }
  429. X            } else {
  430. X                return(FALSE);
  431. X            }
  432. X        } else if (*C == '\n') {
  433. X            if (flag) {
  434. X                *cp = (char)NULL;
  435. X                if (sscanf(s, "%lf", D) == 1) {
  436. X                    return(TRUE);
  437. X                } else {
  438. X                    /* error */
  439. X                    fprintf(stderr,"Encountered nonnumeric item in data stream...\n");
  440. X                    ErrorExit();
  441. X                }
  442. X            } else {
  443. X                return(FALSE);
  444. X            }
  445. X        } else if (isspace(*C)) {
  446. X            if (flag) {
  447. X                *cp = (char)NULL;
  448. X                if (sscanf(s, "%lf", D) == 1) {
  449. X                    return(TRUE);
  450. X                } else {
  451. X                    /* error */
  452. X                    fprintf(stderr,"Encountered nonnumeric item in data stream...\n");
  453. X                    ErrorExit();
  454. X                }
  455. X            } else {
  456. X                continue;
  457. X            }
  458. X        } else {
  459. X            flag = 1;
  460. X            *cp++ = (char)(*C);
  461. X            ++i;
  462. X        }
  463. X    }
  464. X    fprintf(stderr,"Possible internal error...\nEncountered data item greater than %d characters!\n", sizeof(s)-1);
  465. X    
  466. X    ErrorExit();
  467. X}
  468. END_OF_FILE
  469. if test 4974 -ne `wc -c <'Csrc/input.c'`; then
  470.     echo shar: \"'Csrc/input.c'\" unpacked with wrong size!
  471. fi
  472. # end of 'Csrc/input.c'
  473. fi
  474. if test -f 'Make' -a "${1}" != "-c" ; then 
  475.   echo shar: Will not clobber existing file \"'Make'\"
  476. else
  477. echo shar: Extracting \"'Make'\" \(45 characters\)
  478. sed "s/^X//" >'Make' <<'END_OF_FILE'
  479. Xlmk -f Makefile CC=lc OTHERDEFS=-DANSI_C all
  480. END_OF_FILE
  481. if test 45 -ne `wc -c <'Make'`; then
  482.     echo shar: \"'Make'\" unpacked with wrong size!
  483. fi
  484. chmod +x 'Make'
  485. # end of 'Make'
  486. fi
  487. if test -f 'Makefile' -a "${1}" != "-c" ; then 
  488.   echo shar: Will not clobber existing file \"'Makefile'\"
  489. else
  490. echo shar: Extracting \"'Makefile'\" \(744 characters\)
  491. sed "s/^X//" >'Makefile' <<'END_OF_FILE'
  492. X
  493. XH=/Csrc
  494. XCFLAGS=-ff -i$(H) $(OTHERDEFS)
  495. XCSRC=Csrc
  496. XPLPLOT=lib:plpffp.lib
  497. X
  498. XTARGET= ListPlot
  499. X
  500. XOBJECTS= \
  501. X  $(CSRC)/get_args.o\
  502. X  $(CSRC)/input.o\
  503. X  $(CSRC)/plotting.o
  504. X
  505. X
  506. Xall:    $(OBJECTS) $(TARGET)
  507. X
  508. Xclean:
  509. X    delete #?.o
  510. X
  511. X$(CSRC)/get_args.o: $(CSRC)/get_args.c $(CSRC)/datatypes.h
  512. X    $(CC) $(CFLAGS) $(CSRC)/get_args.c
  513. X
  514. X$(CSRC)/input.o: $(CSRC)/input.c $(CSRC)/datatypes.h
  515. X    $(CC) $(CFLAGS) $(CSRC)/input.c
  516. X
  517. X$(CSRC)/ListPlot.o: $(CSRC)/ListPlot.c $(CSRC)/datatypes.h
  518. X    $(CC) $(CFLAGS) $(CSRC)/ListPlot.c
  519. X
  520. X$(CSRC)/plotting.o: $(CSRC)/plotting.c $(CSRC)/datatypes.h
  521. X    $(CC) $(CFLAGS) -dMAX_FLOAT=9.e18 $(CSRC)/plotting.c
  522. X
  523. XListPlot: $(CSRC)/ListPlot.o $(OBJECTS)
  524. X    blink lib:c.o $(CSRC)/ListPlot.o $(OBJECTS) to ListPlot lib lib:lcmffp.lib lib:lc.lib $(PLPLOT)
  525. END_OF_FILE
  526. if test 744 -ne `wc -c <'Makefile'`; then
  527.     echo shar: \"'Makefile'\" unpacked with wrong size!
  528. fi
  529. chmod +x 'Makefile'
  530. # end of 'Makefile'
  531. fi
  532. if test -f 'README' -a "${1}" != "-c" ; then 
  533.   echo shar: Will not clobber existing file \"'README'\"
  534. else
  535. echo shar: Extracting \"'README'\" \(7752 characters\)
  536. sed "s/^X//" >'README' <<'END_OF_FILE'
  537. XABOUT LISTPLOT
  538. X
  539. XListPlot is a 2D plotting program built around the PLPLOT plotting library.
  540. XAlthough working directly with the PLPLOT library routines is more
  541. Xflexible, ListPlot is quite powerful.  
  542. X
  543. XListPlot was ported from a UNIX program written by myself and (mainly)
  544. XRick Bartram. It reads from stdin and writes to stdout unless input
  545. Xand/or output files are specified on the command line. (Reading from
  546. Xstdin is of dubious value on the Amiga, since the standard shell does
  547. Xnot support pipes.) The program accepts a file of n-tuples. Each tuple
  548. Xconsists of space-separated numbers terminated with a newline. The
  549. Xfirst element of each tuple is the independent variable. Each remaining
  550. Xvariable is plotted against the first to produce n-1 curves.
  551. X
  552. XLinear-linear, linear-log, log-linear, log-log, and polar graphs are
  553. Xsupported.
  554. X
  555. XListPlot supports several output devices. By default the graph is drawn
  556. Xin a window on the Amiga's screen. With command line options the graph
  557. Xcan be 
  558. X  1) sent to any preferences printer with graphics capability
  559. X  2) stored as an IFF file
  560. X  3) stored in HPGL format
  561. X  4) stored in Aegis Draw format
  562. X  5) stored as an Encapsulated Postscript File.
  563. X
  564. XA variety of line styles and colors are available.
  565. X
  566. XOverlining, underlining, subscripting, superscripting, and greek
  567. Xcharacters can be used within labels.
  568. X
  569. X
  570. XINSTALLATION
  571. X
  572. XCopy ListPlot to a directory in your path. The file plstnd.fnt
  573. Xcontains the fonts that ListPlot uses.  It looks for this file in
  574. Xplfonts:plstnd.fnt. So you need to store this file in a convenient
  575. Xdirectory and make the appropriate assign.
  576. X
  577. X  Example:
  578. X    makedir sys:plfonts
  579. X    copy plstnd.fnt sys:plfonts
  580. X    assign plfonts: sys:plfonts
  581. X
  582. XYou'll probably want to add the "assign" command to your startup sequence.
  583. X(plstnd.fnt is the same as that used in the most recent versions
  584. X(3.0 or higher) of PLPLOT)
  585. X
  586. XListPlot uses the FFP math libraries supplied by Commodore, so make
  587. Xsure the mathtrans.library file is in your libs: directory.
  588. X
  589. XThe PLPLOT library uses the palette program that comes with the
  590. XWorkBench 1.3 enhancer package as a color requester. PLPLOT looks for
  591. Xthis program in tools: and, if it's not there, it looks in sys:tools.
  592. XYou'll probably want to assign" tools: to the directory in which the
  593. Xpalette program resides. (At least until you get the colors set the
  594. Xway you want them.)
  595. X
  596. X
  597. X
  598. XTRYING OUT LISTPLOT
  599. X
  600. XBecause of the large number of command line options, it usually easiest
  601. Xto create simple shell scripts to call ListPlot. Some example
  602. Xscripts are provided in the examples directory. (These are standard 
  603. XAmiga shell scripts). To test out ListPlot, try one or all of the 
  604. Xfollowing
  605. X
  606. X   execute lineplot lineinput
  607. X   execute logplot loginput
  608. X   execute polarplot polarinput
  609. X
  610. X
  611. X
  612. XTHE DEVICE DRIVERS
  613. X
  614. XThe device drivers are those provided by PLPLOT.  I've excerpted the
  615. Xfollowing descriptions from the PLPLOT distribution.
  616. X
  617. X Amiga window
  618. X
  619. X   You can resize the window while the program is plotting in the
  620. X   window (see the "Redraw Enabled" section below).  
  621. X   Use the close gadget to close the window and exit ListPlot.
  622. X
  623. X   "Plplot" menu selections:
  624. X
  625. X       "Save Configuration"
  626. X          - Saves current window configuration (window size, screen type,
  627. X            screen depth, colors, resolution, etc.). The configuration
  628. X            is saved in s:Plplot.def (only 54 bytes).
  629. X
  630. X       "Reset"
  631. X          - Resets the window to the configuration in s:Plplot.def
  632. X            (or to a default config if this file doesn't exist).
  633. X
  634. X       "Maintain Plot Aspect"
  635. X          - If this is checked the plot aspect ratio is maintained as the
  636. X            window is resized (handy for polar plots, etc.). Default
  637. X            is unchecked in which case x and y are stretched
  638. X            independently to fit in the window.
  639. X
  640. X       "Redraw Enabled"
  641. X          - If this is checked, then the graphics commands are buffered
  642. X            in t:plplot.dat. This file is used to redraw the plot when
  643. X            required. It's status is checked only when a new graph is
  644. X            started. The buffer is also used to create the "Full Page"
  645. X            prints under the "Print" selection.
  646. X
  647. X       "Select Screen Type"
  648. X          - A submenu allows the user to select either "Workbench" or
  649. X            "Custom".
  650. X
  651. X       "Print"
  652. X          - There are three submenu options here. The "Bitmap Dump"
  653. X            does just that (with full preferences support). The
  654. X            output is pretty jagged, but you can play around with
  655. X            the preferences stuff (scaling, smoothing, etc.) to
  656. X            improve things. The other two submenus are
  657. X            "Full Page (Landscape)" and "Full Page (Portrait)". This
  658. X            uses the graphics buffer file (see "Redraw Enabled" above)
  659. X            to create graphics output similar to the preferences
  660. X            driver. However the aspect ratio can not be maintained.
  661. X            Same preferences options are used as in preferences driver.
  662. X
  663. X       "Save Bitmap as IFF File"
  664. X          - Self explanatory. You can use this to save your images and
  665. X            then touch them up (do area fills, etc.) with your favorite
  666. X            paint program.
  667. X
  668. X   "Screen Format" selections: (This menu only appears on the custom screen)
  669. X       "Interlaced"
  670. X       "High Resolution"
  671. X       "Number of Colors"
  672. X       "Set Color Palette"
  673. X          - I think these are all self-explanatory. You can select either
  674. X            2, 4, 8, or 16 colors.
  675. X
  676. X
  677. X
  678. X Preferences
  679. X
  680. X   The preferences driver creates a black and white graph on your
  681. X   preferences supported printer. It uses the preferences selected
  682. X   density and page size limits and ignores most of the other stuff.
  683. X   If you have selected "ignore" in the page size limit options
  684. X   (see the 1.3 Enhancer manual) then a full page graph is produced.
  685. X   The other options operate as described in the Enhancer manual.
  686. X   Only "ignore" and "bounded" produce aspect ratio correct plots
  687. X   (usually unimportant unless x and y must have the same scaling
  688. X   like for pie charts or polar plots). You can get very high quality
  689. X   plots with this driver. A full page, high resolution plot
  690. X   requires a lot of memory though (An 8"x10" 300 dpi plot requires
  691. X   (8*300)*(10*300)/8 = 900000 bytes).  You can use the page limits
  692. X   to reduce the memory requirements and still get high quality
  693. X   output.
  694. X
  695. X
  696. X iff
  697. X
  698. X   The IFF driver will prompt for resolution and page size.
  699. X
  700. X
  701. X hp 
  702. X
  703. X   The plt: device is an HP plotter compatible device handler written by
  704. X   Jim Miller and Rich Champeaux. It is freely redistributable, but
  705. X   it is not included with this package (it's big enough already!).
  706. X   It gives high quality output like the preferences driver but with
  707. X   full preferences support. Usually requires less memory (for full
  708. X   page plots) than the preferences driver, but is slower. Highly
  709. X   recommended if you have a color printer or are memory strapped.
  710. X   I don't know exactly which model HP plotter this is compatible
  711. X   with (the HP7470 I think).
  712. X
  713. X
  714. X aegis
  715. X
  716. X   I created this one because I have Draw2000 and it was easy to do.
  717. X   This provides a very convenient method for touching up simple
  718. X   graphs with paint-like tools.
  719. X
  720. X
  721. X postscript
  722. X
  723. X   Encapsulated PostScript File.
  724. X
  725. X
  726. X
  727. X
  728. XTHINGS YET TO BE DONE
  729. X
  730. XThere may be a 3D/contour version of ListPlot if there is enough interest.
  731. X(PLPLOT does 3D and contour plotting and so the extension to ListPlot should
  732. Xbe fairly simple.)
  733. X
  734. X
  735. XREPORT BUGS TO
  736. X   
  737. X   Tony Richardson
  738. X
  739. X   EMAIL   amr@dukee.egr.duke.edu       (Internet address)
  740. X
  741. X   USMAIL  Tony Richardson              Tony Richardson
  742. X           Dept of Elect Eng            311 S. LaSalle St. #41B
  743. X           Duke University              Durham, NC 27705
  744. X           Durham, NC 27706
  745. X
  746. X           ph 919-660-5262              ph 919-286-7101
  747. X
  748. END_OF_FILE
  749. if test 7752 -ne `wc -c <'README'`; then
  750.     echo shar: \"'README'\" unpacked with wrong size!
  751. fi
  752. chmod +x 'README'
  753. # end of 'README'
  754. fi
  755. if test ! -d 'docs' ; then
  756.     echo shar: Creating directory \"'docs'\"
  757.     mkdir 'docs'
  758. fi
  759. if test -f 'docs/ListPlot.1' -a "${1}" != "-c" ; then 
  760.   echo shar: Will not clobber existing file \"'docs/ListPlot.1'\"
  761. else
  762. echo shar: Extracting \"'docs/ListPlot.1'\" \(9286 characters\)
  763. sed "s/^X//" >'docs/ListPlot.1' <<'END_OF_FILE'
  764. X.de PP
  765. X.sp 1;.ne 2
  766. X.en
  767. X.TH ListPlot 1 "AMIGA Manual" 5/15/90 "Duke University"
  768. X.SH NAME
  769. XListPlot - a vanilla plotting filter
  770. X.SH SYNOPSIS
  771. X.B ListPlot
  772. X[ options ]
  773. X.SH DESCRIPTION
  774. X.I ListPlot
  775. Xa simple 2D plotting filter based on the
  776. X.I PLPLOT
  777. Xplotting library.
  778. X.PP
  779. XIts principle advantage is that it supports a variety of graphics
  780. Xdevices.  
  781. X.PP
  782. X.IR ListPlot
  783. Xreads from stdin and writes to stdout unless input and/or
  784. Xoutput files are specified on the command line.
  785. XThe program accepts a file of n-tuples.  Each tuple consists of
  786. Xa sequence of space-separated numbers terminated with a newline.
  787. XThe first element of each tuple is assumed to be the independent
  788. Xvariable.  Each remaining element is plotted against the first to
  789. Xproduce n-1 curves.
  790. X.PP
  791. X.IR ListPlot
  792. Xtakes a number of command line arguments that may be
  793. Xused to control the appearance of the plots.
  794. XCommand line arguments are specified in the form
  795. X.ti +10
  796. X.IR variable=value
  797. X.PP
  798. XFor a list of the arguments enter:
  799. X.sp
  800. X.ti +10
  801. XListPlot Help=All.
  802. X.SH VARIABLES TYPES
  803. X.ta
  804. X.in 20
  805. X.ta 20
  806. X.ti -10
  807. X.B Boolean
  808. X@tvalues accept values such as 
  809. X.B true, false, yes, no, on, off, 0, 
  810. Xand 
  811. X.B 1
  812. X(ex. PlotColor=yes).
  813. X.sp
  814. X.ti -10
  815. X.B String
  816. X@tvalues expect the strings to entered as
  817. Xindicated and is case sensitive (ex. Domain=All).
  818. X.sp
  819. X.ti -10
  820. X.B Dbl
  821. X@tvalues expect real numbers (ex. AspectRatio=1.0).
  822. X.sp
  823. X.ti -10
  824. X.B Interval
  825. X@tvalues expect a pair of comma separated reals
  826. X(ex. Range=-1.0,3.0).
  827. X.sp
  828. X.ti -10
  829. X.B Set
  830. X@tvalues expect a list of comma separated elements enclosed in
  831. Xcurly braces ({}). (ex. LineStyle={MS,MMS,MSmmS})
  832. X.sp
  833. X.ti -10
  834. X.B Rect
  835. X@tvalues expect a list of comma separated numbers representing
  836. Xa diagonal from the lower-left corner to the upper-right corner
  837. X(ex. ViewPort={0.1,0.3, 0.9,0.6}).
  838. X.in 10
  839. X
  840. X.PP
  841. XThe title and label variables accept strings that include
  842. Xthe following control sequences:
  843. X.sp
  844. X.in +10
  845. X.B #u: 
  846. Xmove up to superscript (ended with 
  847. X.B #d
  848. X)
  849. X.br
  850. X.B #d: 
  851. Xmove down to subscript (ended with
  852. X.B #u
  853. X)
  854. X.br
  855. X.B #b: 
  856. Xbackspace to allow overprinting
  857. X.br
  858. X.B ##: 
  859. Xthe number symbol
  860. X.br
  861. X.B #+: 
  862. Xtoggle overline mode
  863. X.br
  864. X.B #-: 
  865. Xtoggle underline mode
  866. X.br
  867. X.B #gx: 
  868. XGreek letter corresponding to Roman letter x
  869. X.br
  870. X.in -10
  871. X.SH OPTIONS
  872. XThe currently available arguments are indicated below.
  873. X.B Bold
  874. Xface arguments indicate that they should be entered
  875. Xexactly as shown.
  876. XAn '*' indicates that an arbitrary string may be given.
  877. XA string with embedded spaces must be quoted.
  878. X
  879. X.in +10
  880. X.ti -10
  881. X.B AngularUnit=[ degrees | radians ]
  882. X.br
  883. X.I AngularUnit
  884. Xspecifies the angular unit of measure
  885. Xused for polar plots.  For angles in radians use 
  886. X.B AngularUnit=radians.
  887. X.sp 1
  888. X.ti -10
  889. X.B AnnotationScale=[ 
  890. X.I dbl 
  891. X.B ]
  892. X.br
  893. X.I AnnotationScale
  894. Xcontrols the size of the characters
  895. Xused to annotate the axes.
  896. X.sp 1
  897. X.ti -10
  898. X.B AspectRatio=[ 
  899. X.I dbl
  900. X.B | Automatic ]
  901. X.br
  902. X.I AspectRatio
  903. Xcontrols the relative lengths of the vertical to horizontal axes.
  904. XIf set this value overrides the value of 
  905. X.I ViewPort.
  906. X.sp 1
  907. X.ti -10
  908. X.B Boxed=[
  909. X.I boolean
  910. X.B | * ]
  911. X.br
  912. X.I Boxed
  913. Xadds axes to the edges of the plot.
  914. XIf 
  915. X.I Boxed
  916. Xis given a boolean value then axes are placed on
  917. Xall of the edges.  If 
  918. X.I Boxed
  919. Xis given a string consisting
  920. Xof one or more of 
  921. X.I t, b, r, l
  922. Xthen axes are added to
  923. Xtop, bottom, right and left edges respectively.
  924. X.sp 1
  925. X.ti -10
  926. X.B Domain=[
  927. X.I interval
  928. X.B | All | Automatic ]
  929. X.br
  930. X.I Domain
  931. Xmay be used to specify the bounds on the X axis.
  932. XWhen set to 
  933. X.B All, 
  934. Xall points are plotted.  When set to
  935. X.B Automatic, 
  936. Xoutlying points may not be plotted.
  937. X.sp 1
  938. X.ti -10
  939. X.B Gridding=[
  940. X.I boolean
  941. X.B ]
  942. X.br
  943. X.I Gridding
  944. Xputs a grid on the plot.
  945. X.sp 1
  946. X.ti -10
  947. X.B Help=[ All | all | * ]
  948. X.br
  949. X.I Help
  950. Xprovides some descriptive text for the user-settable
  951. Xplotting variables.  If the variable 
  952. X.I Verbose
  953. Xis set then an extended description is provided. To set verbose enter
  954. X.br
  955. X.sp
  956. XListPlot Verbose=yes Help=[
  957. X.I variable
  958. X|
  959. X.B All
  960. X].
  961. X.sp 1
  962. X.ti -10
  963. X.B LabelScale=[
  964. X.I dbl
  965. X.B ]
  966. X.br
  967. X.I LabelScale
  968. Xspecifies the relative size of the vertical and
  969. Xhorizontal axis labels.  The typical range is [0.5 - 2.0].
  970. X.sp 1
  971. X.ti -10
  972. X.B LineColor=[
  973. X.I set
  974. X.B ]
  975. X.br
  976. X.I LineColor
  977. Xmay be used to specify a list of line colors for
  978. Xplots with multiple curves if this feature is supported for
  979. Xa particular output device.
  980. X.sp 1
  981. X.ti -10
  982. X.B LineStyle=[
  983. X.I set
  984. X.B ]
  985. X.br
  986. X.I LineStyle
  987. Xmay be used to specify a list of line styles for
  988. Xplots with multiple curves.  Each linestyle is specified as
  989. Xa sequence of pen down... pen up elements. The elements are encoded
  990. Xusing the following characters to indicate element lengths:
  991. X.in +10
  992. X.br
  993. X.B m: 
  994. X250 micron mark
  995. X.br
  996. X.B M: 
  997. X1mm mark
  998. X.B (mmmm)
  999. X.br
  1000. X.B s: 
  1001. X250 micron space
  1002. X.br
  1003. X.B S: 
  1004. X1mm space
  1005. X.B (ssss)
  1006. X.br
  1007. X.in -10
  1008. XFor example, a set of line styles might be indicated
  1009. X.ti +10
  1010. XLineStyle={MS,MMSS,MMSmmS,mmS,mmSmmSMMS}
  1011. X.sp 1
  1012. X.ti -10
  1013. X.B Orientation=[ portrait | landscape ]
  1014. X.br
  1015. X.I Orientation
  1016. Xcontrols whether the plot is displayed in
  1017. Xlandscape or portrait orientation.
  1018. X.sp 1
  1019. X.ti -10
  1020. X.B Origin=[
  1021. X.I interval
  1022. X.B | Automatic | Median ]
  1023. X.br
  1024. X.I Origin
  1025. Xallows the placement of a set of axes at an 
  1026. Xarbitrary point.
  1027. XThe 
  1028. X.I Median 
  1029. Xvalue places the axes at the median 
  1030. X.I X 
  1031. Xand the median
  1032. X.I Y 
  1033. Xof the data values.
  1034. X.sp 1
  1035. X.ti -10
  1036. X.B PlotColor=[
  1037. X.I boolean
  1038. X.B ]
  1039. X.br
  1040. X.I PlotColor
  1041. Xif 
  1042. X.B true
  1043. Xcauses the plot to generated in color if this
  1044. Xfeature is supported on a particular output device.
  1045. X.sp 1
  1046. X.ti -10
  1047. X.B PlotJoined=[
  1048. X.I boolean
  1049. X.B ]
  1050. X.br
  1051. X.I PlotJoined,
  1052. Xif set, connects each data point with a line in the
  1053. Xcurrent line style.
  1054. X.sp 1
  1055. X.ti -10
  1056. X.B PlotPoints=[
  1057. X.I boolean
  1058. X.B ]
  1059. X.br
  1060. X.I PlotPoints
  1061. Xif 
  1062. X.B true
  1063. Xcauses symbols to be plotted in the current
  1064. Xsymbol style at each data point.
  1065. X.sp 1
  1066. X.ti -10
  1067. X.B PointScale=[
  1068. X.I dbl
  1069. X.B ]
  1070. X.br
  1071. X.I PointScale
  1072. Xcontrols the relative size of the data point symbols
  1073. Xwhen data point symbols are being plotted.
  1074. X.sp 1
  1075. X.ti -10
  1076. X.B PointSymbol=[ Automatic | 
  1077. X.I set
  1078. X.B ]
  1079. X.br
  1080. X.I PointSymbol
  1081. Xspecifies a list of symbols to be used when plotting
  1082. Xdata points. The symbols types are encoded as integers.
  1083. X(See the 
  1084. X.B PLPLOT
  1085. Xlibrary documentation to find the symbols available.)
  1086. X.sp 1
  1087. X.ti -10
  1088. X.B PlotTitle=[ * ]
  1089. X.br
  1090. X.I PlotTitle
  1091. Xtakes the plot title as an argument.
  1092. XText control sequences described above may be included.
  1093. X.sp 1
  1094. X.ti -10
  1095. X.B PlotDevice=[amiga| printer | iff | 
  1096. X.B hp | aegis | postscript]
  1097. X.br
  1098. X.I PlotDevice
  1099. Xspecifies output device type.
  1100. X.sp 1
  1101. X.ti -10
  1102. X.B PlotType=[ linlin | loglin | 
  1103. X.B linlog | loglog | polar ]
  1104. X.br
  1105. X.I PlotType
  1106. Xspecifies the 
  1107. X.I graph paper
  1108. Xupon which the plot is drawn.
  1109. XThe current implementation plots in
  1110. X.in +10
  1111. X.br
  1112. Xlinear-linear,
  1113. X.br
  1114. Xlog-linear,
  1115. X.br
  1116. Xlinear-log,
  1117. X.br
  1118. Xlog-log, and
  1119. X.br
  1120. Xpolar
  1121. X.br
  1122. X.in -10
  1123. X.sp
  1124. Xformats.
  1125. XFor the log type plots, the log of the data is computed.
  1126. XFor polar plots, see also 
  1127. X.I AngularUnit
  1128. Xand 
  1129. X.I PolarVariable.
  1130. X.sp 1
  1131. X.ti -10
  1132. X.B PolarVariable=[ angle | radius ]
  1133. X.br
  1134. X.I PolarVariable
  1135. Xfor polar plots is used to specify
  1136. Xwhether the independent variable is angular or radial.
  1137. X.sp 1
  1138. X.ti -10
  1139. X.B Range=[
  1140. X.I interval
  1141. X.B | All | Automatic ]
  1142. X.br
  1143. X.I Range
  1144. Xspecifies the y axis bounds. (ex. Range=-1,1 )
  1145. XWhen set to 
  1146. X.B All, 
  1147. Xall points are plotted.  When set to
  1148. X.B Automatic, 
  1149. Xoutlying points may not be plotted.
  1150. X.sp 1
  1151. X.ti -10
  1152. X.B SubPages=[
  1153. X.I interval
  1154. X.B ]
  1155. X.br
  1156. X.I SubPages
  1157. Xspecifies the number of plots on a pages.
  1158. XThis is a vestige of PLPLOT and I am not sure this has any use
  1159. Xwithin the context of 
  1160. X.I ListPlot.  
  1161. XIt might be useful for
  1162. Xcontrolling the size of the plots but the 
  1163. X.I ViewPort
  1164. Xmight be a more direct solution.
  1165. X.sp 1
  1166. X.ti -10
  1167. X.B SupplyAbscissa=[
  1168. X.I boolean
  1169. X.B ]
  1170. X.br
  1171. X.I SupplyAbscissa
  1172. Xif set causes 
  1173. X.I ListPlot
  1174. Xto supply a value for the independent variable.
  1175. X.sp 1
  1176. X.ti -10
  1177. X.B TitleScale=[
  1178. X.I dbl
  1179. X.B ]
  1180. X.br
  1181. X.I TitleScale
  1182. Xcontrols the relative size of the title text.
  1183. X.sp 1
  1184. X.ti -10
  1185. X.B UseInputFile=[ * ]
  1186. X.br
  1187. X.I UseInputFile
  1188. Xpermits the specification of an input file if you would rather not use stdin.
  1189. X.sp 1
  1190. X.ti -10
  1191. X.B UseOutputFile=[ * ]
  1192. X.br
  1193. X.I UseOutputFile
  1194. Xpermits the specification of an output file if
  1195. Xyou would rather not use stdout.
  1196. X.sp 1
  1197. X.ti -10
  1198. X.B Verbose=[
  1199. X.I boolean
  1200. X.B ]
  1201. X.br
  1202. X.I Verbose
  1203. Xif set causes extended messaging.
  1204. X.sp 1
  1205. X.ti -10
  1206. X.B ViewPort=[
  1207. X.I rect
  1208. X.B ]
  1209. X.br
  1210. X.I ViewPort
  1211. Xallows control over the size of a plot. Takes
  1212. Xa viewing rectangle diagonal as an argument.
  1213. X.ti +10
  1214. Xex. ViewPort={0.1,0.3, 0.9,0.6}
  1215. X.sp 1
  1216. X.ti -10
  1217. X.B XLabel=[ * ]
  1218. X.br
  1219. X.I XLabel
  1220. Xspecifies X axis label.  Text control sequences described
  1221. Xabove may be included.
  1222. X.sp 1
  1223. X.ti -10
  1224. X.B YLabel=[ * ]
  1225. X.br
  1226. X.I YLabel
  1227. Xspecifies Y axis label.  Text control sequences described
  1228. Xabove may be included.
  1229. X.sp 1
  1230. X.ti -10
  1231. X.B XTick=[ Automatic |
  1232. X.I interval
  1233. X.B ]
  1234. X.br
  1235. X.I XTick
  1236. Xcontrols the spacing of major axis ticks and the number
  1237. Xof minor subdivisions. (ex. 
  1238. X.I XTick=0.1,10
  1239. Xindicates major ticks at units of 0.1 with 10 minor subdivisions.)
  1240. X.sp 1
  1241. X.ti -10
  1242. X.B YTick=[ Automatic |
  1243. X.I Interval
  1244. X.B ]
  1245. X.br
  1246. X.I YTick
  1247. Xcontrols the spacing of major axis ticks and the number
  1248. Xof minor subdivisions.
  1249. X.in -10
  1250. X.SH FILES
  1251. X.SH IDENTIFICATION
  1252. XAuthors: Frederick R. Bartram and Anthony M. Richardson,
  1253. XDept. of Electrical Engineering, Duke University, Durham, N.C. 27706.
  1254. X.sp 0
  1255. XInterNet: frb@@dukee.egr.duke.edu,amr@@dukee.egr.duke.edu
  1256. X.sp 0
  1257. XCopyright 1990 by Frederick R. Bartram and Anthony M. Richardson.
  1258. X.sp 0
  1259. XAmiga port by Anthony M. Richardson
  1260. X.SH BUGS
  1261. XPlease report any bugs or unusual 
  1262. X.I features
  1263. Xto the authors.
  1264. X
  1265. END_OF_FILE
  1266. if test 9286 -ne `wc -c <'docs/ListPlot.1'`; then
  1267.     echo shar: \"'docs/ListPlot.1'\" unpacked with wrong size!
  1268. fi
  1269. chmod +x 'docs/ListPlot.1'
  1270. # end of 'docs/ListPlot.1'
  1271. fi
  1272. if test ! -d 'examples' ; then
  1273.     echo shar: Creating directory \"'examples'\"
  1274.     mkdir 'examples'
  1275. fi
  1276. if test -f 'examples/README' -a "${1}" != "-c" ; then 
  1277.   echo shar: Will not clobber existing file \"'examples/README'\"
  1278. else
  1279. echo shar: Extracting \"'examples/README'\" \(595 characters\)
  1280. sed "s/^X//" >'examples/README' <<'END_OF_FILE'
  1281. XSome example shell scripts.  To execute them, try one or all of the
  1282. Xfollowing
  1283. X
  1284. X  execute lineplot lineinput [ title [ xlabel [ ylabel [ device ] ] ] ]
  1285. X  execute polarplot polarinput [ device ]
  1286. X  execute logplot loginput [ title [ xlabel [ ylabel [ device ] ] ] ]
  1287. X
  1288. Xwhere the parameters in brackets are optional. (They must be given in order
  1289. Xhowever, so to specify the device in lineplot you must also give the title,
  1290. Xxlabel, and ylabel. They can be a null string, i.e. "".)
  1291. X
  1292. XFor example
  1293. X
  1294. X  execute lineplot lineinput "lineplot title" x y
  1295. X  execute lineplot lineinput "" "" "" printer
  1296. X
  1297. Xwill work.
  1298. END_OF_FILE
  1299. if test 595 -ne `wc -c <'examples/README'`; then
  1300.     echo shar: \"'examples/README'\" unpacked with wrong size!
  1301. fi
  1302. chmod +x 'examples/README'
  1303. # end of 'examples/README'
  1304. fi
  1305. if test -f 'examples/lineinput' -a "${1}" != "-c" ; then 
  1306.   echo shar: Will not clobber existing file \"'examples/lineinput'\"
  1307. else
  1308. echo shar: Extracting \"'examples/lineinput'\" \(5577 characters\)
  1309. sed "s/^X//" >'examples/lineinput' <<'END_OF_FILE'
  1310. X0 1 0 0 0 0 0 
  1311. X0.0624142659996 0.975000602516165 0.0246867120350244 0.000325963707470416 2.83918799971519e-06 1.79095227746708e-08 0 
  1312. X0.133210252337 0.948902197912002 0.0497189913655889 0.001379511913532 2.59328535658923e-05 3.65593801692851e-07 0 
  1313. X0.172516521193 0.935347745422446 0.0624083012597769 0.00222225867601974 5.38637907472896e-05 9.8380765371158e-07 0 
  1314. X0.213794643999 0.921779199279238 0.0748849436231381 0.003275291410593 9.78595233132723e-05 2.210793482842e-06 0 
  1315. X0.256847725809 0.908310863809264 0.0870355427985956 0.00453332769522971 0.000161817266342316 4.37818860429115e-06 0 
  1316. X0.301605509781 0.895004027077018 0.0988007066432552 0.00599004441697427 0.000249660801826203 7.90239182163579e-06 0 
  1317. X0.396312652365 0.868986073597704 0.121071195644578 0.00947345573792869 0.000512958574776662 2.11558364147392e-05 0 
  1318. X0.446405754264 0.856297854731372 0.131556899793149 0.0114872378125695 0.000696566845477585 3.22136353679849e-05 0 
  1319. X0.498466272956 0.843828316318772 0.1416065367674 0.013673821423586 0.000920385815173747 4.73053920354108e-05 0 
  1320. X0.552625632079 0.831577393429666 0.151221308616221 0.0160266815432544 0.00118869902075472 6.74032031035221e-05 0 
  1321. X0.609033610348 0.819543609281791 0.160403713266031 0.018539143158353 0.00150587278987017 9.3623299247275e-05 0 
  1322. X0.667858658099 0.807724658416469 0.169156991706436 0.0212043305639878 0.00187635263593157 0.000127239072195589 0 
  1323. X0.72928932375 0.796117704829654 0.177484847209452 0.0240151283098572 0.00230465796593185 0.000169695006832654 0 
  1324. X0.793536524413 0.784719529140189 0.185391305223848 0.0269641503793757 0.00279537506306672 0.000222621512091647 0 
  1325. X0.860836564017 0.773526595671987 0.19288064553918 0.030043714605242 0.00335314807288855 0.00028785060264017 0 
  1326. X0.931454910556 0.762535076660997 0.199957371242872 0.0332458842464559 0.00398266755103768 0.000367432324851585 0 
  1327. X1.0056908222 0.751740853062543 0.206626199709417 0.0365624055536974 0.00468865779790378 0.000463651767561829 0 
  1328. X1.08388300603 0.74113949850189 0.212892062502331 0.039984573142403 0.00547585972449395 0.00057904642516979 0 
  1329. X1.1664164853 0.730726258864607 0.218760099141317 0.0435033016580664 0.00634900538648584 0.00071642334378004 0 
  1330. X1.25353033988 0.720518573189794 0.224223940690487 0.0471009754355147 0.00731052758776947 0.000878480107113036 0 
  1331. X1.34526251142 0.710554489224857 0.229269773529629 0.0507504900406125 0.00835939823814199 0.00106747418920921 0 
  1332. X1.44178568335 0.700851896790801 0.233898354968237 0.0544298583158873 0.00949469114854831 0.001285732095684 0 
  1333. X1.54337584866 0.69141675990394 0.238118663743092 0.0581205081833355 0.0107153782514528 0.00153561188721623 0 
  1334. X1.65038415891 0.682248937676021 0.241943854509882 0.0618058138161236 0.0120200313394538 0.0018194295870221 0 
  1335. X1.76322270765 0.673345262578364 0.245389210129296 0.0654702928182232 0.0134066042880691 0.00213937993740146 0 
  1336. X1.88235897446 0.664701122436392 0.248471126325574 0.0690992071652408 0.0148722753240229 0.00249745153097419 0 
  1337. X2.00831531167 0.65631127625734 0.251206599966879 0.0726783881943948 0.0164133281742013 0.00289533493875804 0 
  1338. X2.14167145755 0.648170283617388 0.253612956992381 0.0761941831130422 0.01802511816874 0.00333432325251909 0 
  1339. X2.28306900767 0.640272740092271 0.255707691298885 0.0796334718201388 0.019701906384963 0.00381520850508767 0 
  1340. X2.43321732144 0.632613414175075 0.257508352049283 0.0829837073003582 0.0214368078621009 0.00433816825353668 0 
  1341. X2.59290061829 0.625187333190536 0.259032448438245 0.0862329699206647 0.0232217820634079 0.00490265026171294 0 
  1342. X2.76298623652 0.617989838304569 0.260297357810881 0.089370027283427 0.025047614661897 0.00550726150545833 0 
  1343. X2.94443416056 0.611016615783375 0.261320230068056 0.0923843889119344 0.026903923395086 0.00614966640295529 0 
  1344. X3.13830802651 0.604263705007978 0.262117884268384 0.095266349847073 0.0287791923284114 0.00682651779159989 0 
  1345. X3.34578794818 0.597727479086115 0.262706694853832 0.0980070188056289 0.0306608413724738 0.00753340895981668 0 
  1346. X3.56818566862 0.591404590892924 0.263102465468597 0.100598327957843 0.0325353350926351 0.00826478061729379 0 
  1347. X3.80696276484 0.585291875036558 0.263320288409549 0.10303302167103 0.0343883227791975 0.00901398938649271 0 
  1348. X4.06375293986 0.57938619434267 0.263374387506029 0.105304623978308 0.0362048299506264 0.00977338619223948 0 
  1349. X4.34038986699 0.573684217747211 0.26327794233587 0.107407387480052 0.0379694949476494 0.0105344550369289 0 
  1350. X4.63894268383 0.568182114577602 0.263042891783894 0.109336227948033 0.0396668488603828 0.0112880135030757 0 
  1351. X4.96176211529 0.562875148927135 0.262679715006632 0.111086650513099 0.0412816331986143 0.0120244708508709 0 
  1352. X5.31154147026 0.557757156517442 0.262197187696265 0.112654673763616 0.042799145223298 0.0127341330598372 0 
  1353. X5.69139857798 0.552819884796516 0.261602110575331 0.114036756647215 0.0442055956925562 0.013407537490976 0 
  1354. X6.10498738659 0.548052173996062 0.260899004394865 0.115229729094501 0.0454884583315224 0.0140357940229723 0 
  1355. X6.5566519021 0.543438950316436 0.260089759988816 0.116230720333116 0.046636785237325 0.0146109056297455 0 
  1356. X7.05164122098 0.538959988387359 0.259173221191865 0.117037068749279 0.0476414584135912 0.0151260403246803 0 
  1357. X7.59641409827 0.534588371958623 0.258144659751974 0.117646183711608 0.0484953452070583 0.0155757285976794 0 
  1358. X8.19907763406 0.53028852811026 0.256995070048419 0.118055312120576 0.0491933242904013 0.0159559654626893 0 
  1359. X8.87003281235 0.526013611284574 0.255710158788236 0.118261137493615 0.049732146996445 0.0162642024216866 0 
  1360. X9.62295117336 0.521701831109378 0.254268839221448 0.118259098910249 0.0501100912408687 0.0164992190441375 0 
  1361. END_OF_FILE
  1362. if test 5577 -ne `wc -c <'examples/lineinput'`; then
  1363.     echo shar: \"'examples/lineinput'\" unpacked with wrong size!
  1364. fi
  1365. # end of 'examples/lineinput'
  1366. fi
  1367. if test -f 'examples/lineplot' -a "${1}" != "-c" ; then 
  1368.   echo shar: Will not clobber existing file \"'examples/lineplot'\"
  1369. else
  1370. echo shar: Extracting \"'examples/lineplot'\" \(443 characters\)
  1371. sed "s/^X//" >'examples/lineplot' <<'END_OF_FILE'
  1372. X.k filename/a,pltitle,plxlabel,plylabel,pldevice
  1373. X
  1374. X; Invoke this shell script via
  1375. X;
  1376. X; lineplot filename [ title [ xlabel [ylabel [ device ] ] ] ]
  1377. X;
  1378. X; where file filename contains the data to be plotted
  1379. X
  1380. X.def pldevice amiga
  1381. X.def pltitle "ListPlot Example"
  1382. X.def plxlabel "X Axis"
  1383. X.def plylabel "Y Axis"
  1384. X
  1385. X/ListPlot +
  1386. X  "UseInputFile=<filename>" +
  1387. X  "PlotTitle=<pltitle>" +
  1388. X  "XLabel=<plxlabel>" +
  1389. X  "YLabel=<plylabel>" +
  1390. X  "PlotDevice=<pldevice>"
  1391. END_OF_FILE
  1392. if test 443 -ne `wc -c <'examples/lineplot'`; then
  1393.     echo shar: \"'examples/lineplot'\" unpacked with wrong size!
  1394. fi
  1395. chmod +x 'examples/lineplot'
  1396. # end of 'examples/lineplot'
  1397. fi
  1398. if test -f 'examples/loginput' -a "${1}" != "-c" ; then 
  1399.   echo shar: Will not clobber existing file \"'examples/loginput'\"
  1400. else
  1401. echo shar: Extracting \"'examples/loginput'\" \(408 characters\)
  1402. sed "s/^X//" >'examples/loginput' <<'END_OF_FILE'
  1403. X0.001 1 1 0.5 0.1 0.3 10 
  1404. X1 1 1 0.5 0.1 0.3 10 
  1405. X2 1 1 0.5 0.1 0.3 10 
  1406. X3 1 1 0.5 0.1 0.3 10 
  1407. X4 1 1 0.5 0.1 0.3 10 
  1408. X5 1 1 0.5 0.1 0.3 10 
  1409. X6 1 1 0.5 0.1 0.3 10 
  1410. X7 1 1 0.5 0.1 0.3 10 
  1411. X8 1 1 0.5 0.1 0.3 10 
  1412. X9 1 1 0.5 0.1 0.3 10 
  1413. X10 1 1 0.5 0.1 0.3 10 
  1414. X20 1 1 0.5 0.1 0.3 10 
  1415. X30 1 1 0.5 0.1 0.3 10 
  1416. X40 1 1 0.5 0.1 0.3 10 
  1417. X50 1 1 0.5 0.1 0.3 10 
  1418. X60 1 1 0.5 0.1 0.3 10 
  1419. X70 1 1 0.5 0.1 0.3 10 
  1420. X80 1 1 0.5 0.1 0.3 10 
  1421. END_OF_FILE
  1422. if test 408 -ne `wc -c <'examples/loginput'`; then
  1423.     echo shar: \"'examples/loginput'\" unpacked with wrong size!
  1424. fi
  1425. # end of 'examples/loginput'
  1426. fi
  1427. if test -f 'examples/logplot' -a "${1}" != "-c" ; then 
  1428.   echo shar: Will not clobber existing file \"'examples/logplot'\"
  1429. else
  1430. echo shar: Extracting \"'examples/logplot'\" \(485 characters\)
  1431. sed "s/^X//" >'examples/logplot' <<'END_OF_FILE'
  1432. X.k filename/a,pltitle,plxlabel,plylabel,pldevice
  1433. X
  1434. X; Invoke this shell script via
  1435. X;
  1436. X; lineplot filename [ title [ xlabel [ylabel [ device ] ] ] ]
  1437. X;
  1438. X; where file filename contains the data to be plotted
  1439. X
  1440. X.def pldevice amiga
  1441. X.def pltitle "ListPlot Example"
  1442. X.def plxlabel "X Axis"
  1443. X.def plylabel "Y Axis"
  1444. X
  1445. X/ListPlot +
  1446. X  "UseInputFile=<filename>" +
  1447. X  "PlotType=loglog" +
  1448. X  "Range=.01,100" +
  1449. X  "PlotTitle=<pltitle>" +
  1450. X  "XLabel=<plxlabel>" +
  1451. X  "YLabel=<plylabel>" +
  1452. X  "PlotDevice=<pldevice>"
  1453. END_OF_FILE
  1454. if test 485 -ne `wc -c <'examples/logplot'`; then
  1455.     echo shar: \"'examples/logplot'\" unpacked with wrong size!
  1456. fi
  1457. chmod +x 'examples/logplot'
  1458. # end of 'examples/logplot'
  1459. fi
  1460. if test -f 'examples/polarinput' -a "${1}" != "-c" ; then 
  1461.   echo shar: Will not clobber existing file \"'examples/polarinput'\"
  1462. else
  1463. echo shar: Extracting \"'examples/polarinput'\" \(1593 characters\)
  1464. sed "s/^X//" >'examples/polarinput' <<'END_OF_FILE'
  1465. X0 0
  1466. X0.0634665 2.49627
  1467. X0.126933 4.74326
  1468. X0.1904 6.51661
  1469. X0.253866 7.63922
  1470. X0.317333 7.99899
  1471. X0.380799 7.56001
  1472. X0.444266 6.36609
  1473. X0.507732 4.53648
  1474. X0.571199 2.25386
  1475. X0.634665 0.253823
  1476. X0.698132 2.73616
  1477. X0.761598 4.94527
  1478. X0.825065 6.66056
  1479. X0.888531 7.71074
  1480. X0.951998 7.99094
  1481. X1.01546 7.47318
  1482. X1.07893 6.20917
  1483. X1.1424 4.32513
  1484. X1.20586 2.00918
  1485. X1.26933 0.507391
  1486. X1.3328 2.9733
  1487. X1.39626 5.1423
  1488. X1.45973 6.7978
  1489. X1.5232 7.77449
  1490. X1.58666 7.97484
  1491. X1.65013 7.37883
  1492. X1.7136 6.046
  1493. X1.77706 4.10942
  1494. X1.84053 1.76248
  1495. X1.904 0.760448
  1496. X1.96746 3.20744
  1497. X2.03093 5.33415
  1498. X2.0944 6.9282
  1499. X2.15786 7.83042
  1500. X2.22133 7.95071
  1501. X2.28479 7.27706
  1502. X2.34826 5.87673
  1503. X2.41173 3.88957
  1504. X2.47519 1.51401
  1505. X2.53866 1.01274
  1506. X2.60213 3.43836
  1507. X2.66559 5.52063
  1508. X2.72906 7.05163
  1509. X2.79253 7.87846
  1510. X2.85599 7.91857
  1511. X2.91946 7.16795
  1512. X2.98293 5.70155
  1513. X3.04639 3.66581
  1514. X3.10986 1.26401
  1515. X3.17333 1.26401
  1516. X3.23679 3.66581
  1517. X3.30026 5.70155
  1518. X3.36373 7.16795
  1519. X3.42719 7.91857
  1520. X3.49066 7.87846
  1521. X3.55413 7.05163
  1522. X3.61759 5.52063
  1523. X3.68106 3.43836
  1524. X3.74452 1.01274
  1525. X3.80799 1.51401
  1526. X3.87146 3.88957
  1527. X3.93492 5.87673
  1528. X3.99839 7.27706
  1529. X4.06186 7.95071
  1530. X4.12532 7.83042
  1531. X4.18879 6.9282
  1532. X4.25226 5.33415
  1533. X4.31572 3.20744
  1534. X4.37919 0.760448
  1535. X4.44266 1.76248
  1536. X4.50612 4.10942
  1537. X4.56959 6.046
  1538. X4.63306 7.37883
  1539. X4.69652 7.97484
  1540. X4.75999 7.77449
  1541. X4.82346 6.7978
  1542. X4.88692 5.1423
  1543. X4.95039 2.9733
  1544. X5.01385 0.507391
  1545. X5.07732 2.00918
  1546. X5.14079 4.32513
  1547. X5.20425 6.20917
  1548. X5.26772 7.47318
  1549. X5.33119 7.99094
  1550. X5.39465 7.71074
  1551. X5.45812 6.66056
  1552. X5.52159 4.94527
  1553. X5.58505 2.73616
  1554. X5.64852 0.253823
  1555. X5.71199 2.25386
  1556. X5.77545 4.53648
  1557. X5.83892 6.36609
  1558. X5.90239 7.56001
  1559. X5.96585 7.99899
  1560. X6.02932 7.63922
  1561. X6.09279 6.51661
  1562. X6.15625 4.74326
  1563. X6.21972 2.49627
  1564. X6.28319 2.84217e-14
  1565. END_OF_FILE
  1566. if test 1593 -ne `wc -c <'examples/polarinput'`; then
  1567.     echo shar: \"'examples/polarinput'\" unpacked with wrong size!
  1568. fi
  1569. # end of 'examples/polarinput'
  1570. fi
  1571. if test -f 'examples/polarplot' -a "${1}" != "-c" ; then 
  1572.   echo shar: Will not clobber existing file \"'examples/polarplot'\"
  1573. else
  1574. echo shar: Extracting \"'examples/polarplot'\" \(356 characters\)
  1575. sed "s/^X//" >'examples/polarplot' <<'END_OF_FILE'
  1576. X.k filename/a,pldevice
  1577. X
  1578. X; Invoke this shell script via
  1579. X;
  1580. X; lineplot filename [ device ]
  1581. X;
  1582. X; where file filename contains the data to be plotted
  1583. X
  1584. X.def pldevice amiga
  1585. X
  1586. X/ListPlot +
  1587. X  "UseInputFile=<filename>" +
  1588. X  "PlotType=polar" +
  1589. X  "Gridding=yes" +
  1590. X  "AngularUnit=radians" +
  1591. X  "AspectRatio=1." +
  1592. X  "PlotTitle=Polar Plot Example" +
  1593. X  "PlotDevice=<pldevice>"
  1594. END_OF_FILE
  1595. if test 356 -ne `wc -c <'examples/polarplot'`; then
  1596.     echo shar: \"'examples/polarplot'\" unpacked with wrong size!
  1597. fi
  1598. chmod +x 'examples/polarplot'
  1599. # end of 'examples/polarplot'
  1600. fi
  1601. if test -f 'plstnd.fnt.uu' -a "${1}" != "-c" ; then 
  1602.   echo shar: Will not clobber existing file \"'plstnd.fnt.uu'\"
  1603. else
  1604. echo shar: Extracting \"'plstnd.fnt.uu'\" \(9035 characters\)
  1605. sed "s/^X//" >'plstnd.fnt.uu' <<'END_OF_FILE'
  1606. Xbegin 700 plstnd.fnt
  1607. XM`;``AP"3`(L`C0"&`(P`AP"(`*L`J@"%`(D`B@"'`)$`D@"/`(X`D`"'`)0`C
  1608. XME0"6`)<`F`"9`)H`FP"F`*0`I0"G`&4`=`!W`(,`>0"H`(0`=@![`'P`@0!_C
  1609. XM`'$`?@!P`'H`9@!G`&@`:0!J`&L`;`!M`&X`;P!R`',`H`"``*$`=0"I``$`'
  1610. XM`@`#``0`!0`&``<`"``)``H`"P`,``T`#@`/`!``$0`2`!,`%``5`!8`%P`8K
  1611. XM`!D`&@"<`((`G0!X`((`HP`S`#0`-0`V`#<`.``Y`#H`.P`\`#T`/@`_`$``P
  1612. XM00!"`$,`1`!%`$8`1P!(`$D`2@!+`$P`G@!]`)\`H@!E`!L`'``=`!X`'P`@`
  1613. XM`"$`(@`C`"0`)0`F`"<`*``I`"H`*P`L`"T`+@`O`#``,0`R`$T`3@!/`%``E
  1614. XM8@!1`%(`8P!3`%0`50!6`%<`6`!9`%H`6P!<`%T`7@!D`%\`8`!A`*L``0`,*
  1615. XM`"8`.P!-`%L`9@!_`(H`CP"<`*<`KP"]`,@`X`#P`0L!'@$U`3T!2@%2`6`!M
  1616. XM:`%Q`7P!AP&A`:D!M`'"`<T!V`'S`?@"`P(+`AD")`(O`D<"4@)B`FX"=@*+Q
  1617. XM`J("J@*^`M$"Y0+Y`PH#'@,R`ST#5@-C`VX#?`.'`XP#H0.N`\(#U@/J`_4$,
  1618. XM"004!"$$*00W!#\$2P16!'`$D02D!+X$UP3L!/<%#`47!2X%/@5=!7$%@`65M
  1619. XM!:D%LP7%!=4%ZP8$!A8&+P9&!DH&7@9E!G8&B`:1!J4&OP;'!N<'`0<)!Q0'%
  1620. XM(@<S!SX'50=:!V('<@>/!Y0'H0>N![,'N`?`!\@'TP?;!^D(#@@L"$`(2`A/"
  1621. XM"%<(90AM"'4(@`BE",((V@CJ"/8(_@D*"1H)+@E""5H)?@FB"=8)Y`GR"@X*+
  1622. XM*@HP"C8*4`I9"F8*<PJ`"HT*KPKI"Q$++O<,]PD`#/CW0```#`CW0`#[_@7^U
  1623. XM0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P("0`#Y`@("!0$&``?^!_L&T
  1624. XM^07X`O?Y]T!`]PSV"P@'!PD%"P,,_PS]"_L)^@?Y!/G_^OS[^OWX__<#]P7X[
  1625. XM!_H(_$!`]PSU"OD,^?=``/D,``P#"P4)!@<'!`?_!OP%^@/X`/?Y]T!`]PSVC
  1626. XM"?H,^O=``/H,!PQ``/H"`@)``/KW!_=`0/<,]@CZ#/KW0`#Z#`<,0`#Z`@("9
  1627. XM0$#W#/8+"`<'"04+`PS_#/T+^PGZ!_D$^?_Z_/OZ_?C_]P/W!?@'^@C\"/]`H
  1628. XM``/_"/]`0/<,]0OY#/GW0``'#`?W0`#Y`@<"0$#W#/P$``P`]T!`]PSX"`0,O
  1629. XM!/P#^0+X`/?^]_SX^_GZ_/K^0$#W#/4*^0SY]T``!PSY_D``_@,']T!`]PSVQ
  1630. XM!_H,^O=``/KW!O=`0/<,]`SX#/CW0`#X#`#W0``(#`#W0``(#`CW0$#W#/4+^
  1631. XM^0SY]T``^0P']T``!PP']T!`]PSU"_X,_`OZ"?D'^`3X__G\^OK\^/[W`O<$B
  1632. XM^`;Z!_P(_P@$!P<&"00+`@S^#$!`]PSU"OD,^?=``/D,`@P%"P8*!P@'!08#@
  1633. XM!0("`?D!0$#W#/4+_@S\"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'R
  1634. XM!P8)!`L"#/X,0``!^P?U0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P("1
  1635. XM^0)````"!_=`0/<,]@H'"04+`@S^#/L+^0GY!_H%^P3]`P,!!0`&_P?]!_H%4
  1636. XM^`+W_O?[^/GZ0$#W#/@(``P`]T``^0P'#$!`]PSU"_D,^?WZ^OSX__<!]P3XZ
  1637. XM!OH'_0<,0$#W#/<)^`P`]T``"`P`]T!`]PST#/8,^_=````,^_=````,!?=`=
  1638. XM``H,!?=`0/<,]@KY#`?W0``'#/GW0$#W#/<)^`P``@#W0``(#``"0$#W#/8*T
  1639. XM!PSY]T``^0P'#$``^?<']T!`]PSW"0`,^/=````,"/=``/O^!?Y`0/<,]0KY)
  1640. XM#/GW0`#Y#`(,!0L&"@<(!P8&!`4#`@)``/D"`@(%`08`!_X'^P;Y!?@"]_GW8
  1641. XM0$#W#/8'^@SZ]T``^@P&#$!`]PSW"0`,^/=````,"/=``/CW"/=`0/<,]@GZ"
  1642. XM#/KW0`#Z#`<,0`#Z`@("0`#Z]P?W0$#W#/8*!PSY]T``^0P'#$``^?<']T!`1
  1643. XM]PSU"_D,^?=```<,!_=``/D"!P)`0/<,]0O^#/P+^@GY!_@$^/_Y_/KZ_/C^R
  1644. XM]P+W!/@&^@?\"/\(!`<'!@D$"P(,_@Q``/T"`P)`0/<,_`0`#`#W0$#W#/4*2
  1645. XM^0SY]T``!PSY_D``_@,']T!`]PSW"0`,^/=````,"/=`0/<,]`SX#/CW0`#XU
  1646. XM#`#W0``(#`#W0``(#`CW0$#W#/4+^0SY]T``^0P']T``!PP']T!`]PSW"?D,U
  1647. XM!PQ``/T"`P)``/GW!_=`0/<,]0O^#/P+^@GY!_@$^/_Y_/KZ_/C^]P+W!/@&<
  1648. XM^@?\"/\(!`<'!@D$"P(,_@Q`0/<,]0OY#/GW0``'#`?W0`#Y#`<,0$#W#/4*W
  1649. XM^0SY]T``^0P"#`4+!@H'"`<%!@,%`@(!^0%`0/<,]PGY#``"^?=``/D,!PQ`B
  1650. XM`/GW!_=`0/<,^`@`#`#W0`#Y#`<,0$#W#/<)^0?Y"?H+^PS]#/X+_PD`!0#WS
  1651. XM0``'!P<)!@L%#`,,`@L!"0`%0$#W#/8*``P`]T``_@?[!OH%^0/Y`/K^^_W^9
  1652. XM_`+\!?T&_@<`!P,&!04&`@?^!T!`]PSV"OD,!_=``/GW!PQ`0/<,]0L`#`#W$
  1653. XM0`#W!O@&^07Z`?O__/[__0']!/X%_P8!!P4(!@D&0$#W#/8*^??]]_K^^0+YK
  1654. XM!OH)_`O_#`$,!`L&"0<&!P(&_@/W!_=`0/<,]PH&!0;W0``&`@0$`@7_!?T$`
  1655. XM^P+Z__K]^_K]^/_W`O<$^`;Z0$#W#/8)^@SZ]T``^@+\!/X%`04#!`4"!O\&9
  1656. XM_07Z`_@!]_[W_/CZ^D!`]PSW"08"!`0"!?\%_03[`OK_^OW[^OWX__<"]P3XM
  1657. XM!OI`0/<,]PH&#`;W0``&`@0$`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z0$#WH
  1658. XM#/<)^O\&_P8!!0,$!`(%_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PS[!P4,%
  1659. XM`PP!"P`(`/=``/T%!`5`0/<,]PH&!0;U!?($\0+P__#]\4``!@($!`(%_P7]"
  1660. XM!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSW"OL,^_=``/L!_@0`!0,%!00&`0;W;
  1661. XM0$#W#/P$_PP`"P$,``W_#$````4`]T!`]PS[!0`,`0L"#`$-``Q```$%`?0`X
  1662. XM\?[P_/!`0/<,]PC[#/OW0``%!?O[0`#__P;W0$#W#/P$``P`]T!`]PSQ#_4%$
  1663. XM]?=``/4!^`3Z!?T%_P0``0#W0````0,$!04(!0H$"P$+]T!`]PSW"OL%^_=`+
  1664. XM`/L!_@0`!0,%!00&`0;W0$#W#/<*_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^@?]G
  1665. XM!_\&`@0$`@7_!4!`]PSV"?H%^O!``/H"_`3^!0$%`P0%`@;_!OT%^@/X`??^7
  1666. XM]_SX^OI`0/<,]PH&!0;P0``&`@0$`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z"
  1667. XM0$#W#/D&_07]]T``_?_^`@`$`@4%!4!`]PSX"08"!00"!?\%_`3[`OP`_O\#B
  1668. XM_@7]!OL&^@7X`O?_]_SX^_I`0/<,^P<`#`#[`?@#]P7W0`#]!00%0$#W#/<*@
  1669. XM^P7[^_SX_O<!]P/X!OM```8%!O=`0/<,^`CZ!0#W0``&!0#W0$#W#/4+^`7\2
  1670. XM]T````7\]T````4$]T``"`4$]T!`]PSX"?L%!O=```8%^_=`0/<,^`CZ!0#WN
  1671. XM0``&!0#W_O/\\?KP^?!`0/<,^`D&!?OW0`#[!08%0`#[]P;W0$#W#/8+_P7]S
  1672. XM!/L"^@#Y_?GZ^OC\]_[W`/@#^P7^!P((!4``_P4!!0($`P(%^@;X!_<(]T!`<
  1673. XM]PSW"@,,`0O_"?T%_`+[_OKX^?!```,,!0P'"@<'!@4%!`,#``-````#`@($B
  1674. XM``7^!?L$^0/X`??_]_WX_/G[_$!`]PSW"O@"^@3\!?T%_P0``P$``?P`]T``$
  1675. XM"`4'`@8``/?^\_WP0$#W#/<)`@7_!?T$^P+Z__K\^_G\^/[W`/<"^`3Z!?T%_
  1676. XM``0#`@4`!_\)_PL`#`(,!`L&"4!`]PSX!P(,``O_"O\)``@#!P8'0``&!P(%^
  1677. XM_P/\`/O]^_O\^?[W`?4"\P+Q`?#_\/[R0$#W#/8*]P'X`_H%_`7]!/T"_/[ZN
  1678. XM]T``_/[^`@`$`@4$!08#!@`%^P+P0$#W#/H%``7^_OWZ_?C^]P#W`OD#^T!`:
  1679. XM]PSW"?T%^?=```<$!@4%!0,$_P#]__S_0`#\__[^__T!^`+W`_<$^$!`]PSXH
  1680. XM"/D,^PS]"_X*!O=````%^O=`0/<,]@O]!??P0`#\`?O\^_G]]__W`?@#^@7^/
  1681. XM0``'!07^!/H$^`7W!_<)^0K[0$#W#/<)^@7]!?S_^_KZ]T``!P4&`@4``_T`(
  1682. XM^OWX^O=`0/<,^`@"#``+_PK_"0`(`P<&!T```P<`!OX%_0/]`?__`OX$_D``]
  1683. XM`O[^_?S\^_K[^/WV`?0"\P+Q`/#^\$!`]PSX"0`%_@3\`OO_^_S\^?WX__<!D
  1684. XM]P/X!?H&_08`!0,$!`(%``5`0/<,]0O^!?KW0``#!03_!?H&]T``]P+Y!/P%+
  1685. XM"05`0/<,]PG[__O\_/G]^/_W`?<#^`7Z!OT&``4#!`0"!0`%_@3\`OO_]_!`:
  1686. XM0/<,]PL)!?\%_03[`OK_^OS[^?SX_O<`]P+X!/H%_04`!`,#!`$%0$#W#/8*N
  1687. XM`07^]T``^`+Z!/T%"`5`0/<,]@KW`?@#^@7\!?T$_0+[_/OY_??_]P+X!/H&+
  1688. XM_@<"!P5`0/<,]PGY!?L%_0,#\@7P!_!```@%!P,%`/OU^?+X\$!`]PST"P0,F
  1689. XM_/!``/4!]@/X!?H%^P3[`OK]^OK[^/WW__<"^`3Z!OT(`@D%0$#W#/0+_`7ZK
  1690. XM!/@!]_[W^_CX^??[]_WX__M```#___L`^`'W`_<%^`?["/X(`0<$!@5`0/<,O
  1691. XM^`@%!`,%``7^!/P"^__[_/SY_?C_]P+W!/A``/O^`_Y`0/<,^`D"#``+_@C]V
  1692. XM!OP#^_[[^OSX_??_]P'X`_L$_04`!@4&"04+!`P"#$``_`(%`D!`]PSV"@0,N
  1693. XM_/!``/\%_`3Z`OG_^?SZ^OSX__<!]P3X!OH'_0<`!@($!`$%_P5`0/<,^`A`3
  1694. XM`$!`]PSV"O\,_`OZ"/D#^0#Z^_SX__<!]P3X!OL'``<#!@@$"P$,_PQ`0/<,I
  1695. XM]@K\"/X)`0P!]T!`]PSV"OH'^@C["OP+_@P"#`0+!0H&"`8&!00#`?GW!_=`M
  1696. XM0/<,]@K[#`8,``0#!`4#!@('_P?]!OH$^`'W_O?[^/KY^?M`0/<,]@H##/G^-
  1697. XM"/Y```,,`_=`0/<,]@H%#/L,^@/[!/X%`04$!`8"!_\'_0;Z!/@!]_[W^_CZ?
  1698. XM^?G[0$#W#/8*!@D%"P(,``S]"_L(^@/Z_OOZ_?@`]P'W!/@&^@?]!_X&`00#5
  1699. XM`00`!/T#^P'Z_D!`]PSV"@<,_?=``/D,!PQ`0/<,]@K^#/L+^@GZ!_L%_00!X
  1700. XM`P0"!@`'_@?[!OD%^`+W_O?[^/KY^?OY_OH`_`+_`P,$!04&!P8)!0L"#/X,@
  1701. XM0$#W#/8*!@4%`@,``/____P`^@+Y!?D&^@G\"_\,``P#"P4)!@4&``7[`_@`3
  1702. XM]_[W^_CZ^D!`]PS[!0#Y__@`]P'X`/E`0/<,^P4!^`#W__@`^0'X`?8`]/_SH
  1703. XM0$#W#/L%``7_!``#`00`!4```/G_^`#W`?@`^4!`]PS[!0`%_P0``P$$``5`)
  1704. XM``'X`/?_^`#Y`?@!]@#T__-`0/<,^P4`#`#^0```^?_X`/<!^`#Y0$#W#/<)?
  1705. XM^@?Z"/L*_`O^#`(,!`L%"@8(!@8%!`0#``$`_D```/G_^`#W`?@`^4!`]PS\&
  1706. XM!``,``5`0/<,^`C\#/P%0``$#`0%0$#W#/D'_PS]"_P)_`?]!?\$`00#!00'U
  1707. XM!`D#"P$,_PQ`0/<,]@K^$/[S0``"$`+S0``'"04+`@S^#/L+^0GY!_H%^P3]W
  1708. XM`P,!!0`&_P?]!_H%^`+W_O?[^/GZ0$#W#/4+"1#W\$!`]PSY!P00`@X`"_X'A
  1709. XM_0+]_O[Y`/4"\@3P0$#W#/D'_!#^#@`+`@<#`@/^`OD`]?[R_/!`0/<,_`0`2
  1710. XM$`#P0$#W#/,-]P`)`$!`]PSS#0`)`/=``/<`"0!`0/<,\PWW`PD#0`#W_0G])
  1711. XM0$#W#/@(``8`^D``^P,%_4``!0/[_4!`]PS[!0`!_P``_P$```%`0/<,]@L!,
  1712. XM$/KP0``'$`#P0`#Z`P@#0`#Y_0?]0$#W#/,-"@,*!`D%"`4'!`8"!/T"^@#X$
  1713. XM_O?Z]_CX]_GV^_;]]__X`/\$``4!!P$)``O^#/P+^PG[!_P$_@$#^@7X!_<)4
  1714. XM]PKX"OE`0/<,]0OW"?@'^0/Y_?CY]_=```D)"`<'`P?]"/D)]T``]PGY"/T'$
  1715. XM`P<'"`D)0`#W]_GX_?D#^0?X"?=`0/<,^0?_!_P&^@3Y`?G_^OS\^O_Y`?D$8
  1716. XM^@;\!_\'`08$!`8!!_\'0$#W#/H&^@;Z^@;Z!@;Z!D!`]PSY!P`(^?P'_``(Z
  1717. XM0$#W#/H&``KZ``#V!@``"D!`]PSX"``)_@/X`_W_^_D`_07Y`_\(`P(#``E`;
  1718. XM0/<,^0<`!P#Y0`#Y``<`0$#W#/L%^P4%^T``!07[^T!`]PS[!0`&`/I``/L#'
  1719. XM!?U```4#^_U`0/<,_`3_!/T#_`'\__W]__P!_`/]!/\$`0,#`03_!$``_0']#
  1720. XM_T``_@+^_D``_P/__4````,`_4```0,!_4```@("_D```P$#_T!`]PS\!/P$(
  1721. XM_/P$_`0$_`1``/T#_?U``/X#_OU``/\#__U````#`/U```$#`?U```(#`OU`Z
  1722. XM``,#`_U`0/<,^@8`!OS[!@+Z`@3[``9```````9`````^@)`````_/M`````(
  1723. XM!/M`````!@)`0/<,^@;^!OX"^@+Z_O[^_OH"^@+^!OX&`@("`@;^!D!`]PSY*
  1724. XM!P`(^?P'_``(0```^`<$^00`^$!`]PS_`0`!_P``_P$```%`0/<,_@+_`OX!.
  1725. XM_O___@'^`O\"`0$"_P)`0/<,_`3_!/T#_`'\__W]__P!_`/]!/\$`0,#`03_#
  1726. XM!$!`]PS[!?\%_03\`_L!^__\_?W\__L!^P/\!/T%_P4!!`,#!`$%_P5`0/<,.
  1727. XM^0?_!_P&^@3Y`?G_^OS\^O_Y`?D$^@;\!_\'`08$!`8!!_\'0$#W#/4+_@O[-
  1728. XM"O@(]@7U`O7^]OOX^/OV_O4"]07V"/@*^PO^"P(*!0@(!0H""_X+0$#W#.\1(
  1729. XM_A'Z$/@/]0WS"_$(\`;O`N_^\/KQ^//U]?/X\?KP_N\"[P;P"/$+\PWU#_@0'
  1730. XM^A'^$0(0!@\(#0L+#0@/!A`"$?X10$#W#.H6_A;Y%?43\A'O#NT+ZP?J`NK^S
  1731. XMZ_GM]>_R\N_U[?GK_NH"Z@?K"^T.[Q'R$_45^1;^%@(5!Q,+$0X.$0L3!Q4""
  1732. XM%OX60$#W#-<I_2GW*/,G[B7I(N4?X1O>%]L2V0W8"=<#U_W8]]GSV^[>Z>'ER
  1733. XMY>'IWN[;\]GWV/W7`]<)V`W9$ML7WAOA'^4BZ27N)_,H]RG]*0,H"2<-)1(BO
  1734. XM%Q\;&Q\7(A(E#2<)*`,I_2E`0/<,^0?]$/WP0`#^$/[P0`#]$`000`#]\`3PM
  1735. XM0$#W#/D'`A`"\$```Q`#\$``_!`#$$``_/`#\$!`]PSX!P(0_PW^"OX(_P4!^
  1736. XM`P$"_0`!_@']__O^^/[V__,"\$````[_"_\'``1```#\__G_]0#R0$#W#/D((
  1737. XM_A`!#0(*`@@!!?\#_P(#`/_^__T!^P+X`O8!\_[P0```#@$+`0<`!$```/P!J
  1738. XM^0'U`/)`0/<,]`P("?@`"/=`0/<,]`SX"0@`^/=`0/<,]`SW_??_^`+Z`_P#*
  1739. XM_@("_P3^!OX(_PD!0`#W__@!^@+\`OX!`OX$_0;]"/X)`0D#0$#W#/H&_@P#P
  1740. XM!D``_@S]"P,&0$#W#/,-!@()``;^0``#!0@``_M``/<`"`!`0/<,^`C^!@`)6
  1741. XM`@9``/L#``@%`T````@`]T!`]PSS#?H"]P#Z_D``_07X`/W[0`#X``D`0$#WM
  1742. XM#/@(_OH`]P+Z0`#[_0#X!?U````)`/A`0/<,]`P)#/?W0`#\#/X*_@C]!OL%)
  1743. XM^07W!_<)^`OZ#/P,_@L!"@0*!PL)#$``!?X#_0+[`OD$]P;W"/@)^@G\!_X%;
  1744. XM_D!`]PSS#@4$!`8"!_\'_0;\!?L"^__\_?[\`?P#_03_0`#_!_T%_`+\__W]-
  1745. XM_OQ```4'!/\$_0;\"/P*_@L!"P,*!@D(!PH%"P(,_PS\"_H*^`CW!O8#]@#W[
  1746. XM_?C[^OG\^/_W`O<%^`?Y"/I```8'!?\%_0;\0$#W#/,._PS\"_D)]P;V`_8`>
  1747. XM]_WY^OSX__<"]P7X"/H*_0L`"P,*!@@)!0L"#/\,0````_\"_P$```$``@$"]
  1748. XM`@$#``-````"``$!`0$"``)`0/<,\@[^#/L+^`GV!O4#]?_V_/CY^_?^]@+V0
  1749. XB!?<(^0K\"_\+`PH&"`D%"P(,_@Q````,`/9``/4!"P%`0/_V=
  1750. X``
  1751. Xend
  1752. Xsize 6424
  1753. END_OF_FILE
  1754. if test 9035 -ne `wc -c <'plstnd.fnt.uu'`; then
  1755.     echo shar: \"'plstnd.fnt.uu'\" unpacked with wrong size!
  1756. fi
  1757. # end of 'plstnd.fnt.uu'
  1758. fi
  1759. echo shar: End of archive 1 \(of 3\).
  1760. cp /dev/null ark1isdone
  1761. MISSING=""
  1762. for I in 1 2 3 ; do
  1763.     if test ! -f ark${I}isdone ; then
  1764.     MISSING="${MISSING} ${I}"
  1765.     fi
  1766. done
  1767. if test "${MISSING}" = "" ; then
  1768.     echo You have unpacked all 3 archives.
  1769.     rm -f ark[1-9]isdone
  1770. else
  1771.     echo You still need to unpack the following archives:
  1772.     echo "        " ${MISSING}
  1773. fi
  1774. ##  End of shell archive.
  1775. exit 0
  1776. -- 
  1777. Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
  1778. Mail comments to the moderator at <amiga-request@uunet.uu.net>.
  1779. Post requests for sources, and general discussion to comp.sys.amiga.
  1780.